/**
 * Universidad del Valle de Guatemala
 * CC2003 - Algoritmos y Estructuras de Datos
 * HOJA DE TRABAJO #2
 * Oscar Antonio González Natareno 10277
 */

/* CLASE NUESTRAINTERFAZ
/**
 * Interfaz de la clase Stack, que representa las acciones que pueden realizar los objetos de dicha clase.
 */


public interface NuestroStack<E> {                                  // GENÉRICOS
    
    /* MÉTODO ISEMPTY */
    /**
     * POST: Devuelve True si y sólo si el Stack se encuentra vacio.
     * @return True si el Stack está vacío, False si el Stack no se encuentra vacío.
     */
    public boolean isEmpty();
    
    /* MÉTODO PUSH */
     /**
     * POST: Elemento es añadido al Stack.
     * @param Elemento a ingresar en el Stack. 
     */
     public void push(E elemento);
    
    /**
     * PRE: El Stack no se encuentra vacio.
     * POST: Devuelve elemento de la parte superior del Stack.
     * @return Elemento removido del Stack.
     * @throws NullPointerException si el Stack se encuentra vacío.
     */
    public E pop() throws NullPointerException; 
    
} // FIN DE LA INTERFAZ 
